{ tcsetattr (STDIN_FILENO, TCSANOW, &saved_attributes); }

void set_input_mode (void) { struct termios tattr; char *name;

/* Make sure stdin is a terminal. */ if (!isatty (STDIN_FILENO)) { fprintf (stderr, "Not a terminal.\n"); exit (EXIT_FAILURE); }

/* Save the terminal attributes so we can restore them later. */ tcgetattr (STDIN_FILENO, &saved_attributes); atexit (reset_input_mode);

/* Set the funny terminal modes. */ tcgetattr (STDIN_FILENO, &tattr); tattr.c_lflag &= ~(ICANON|ECHO); /* Clear ICANON and ECHO. */ tattr.c_cc[VMIN] = 1; tattr.c_cc[VTIME] = 0; tcsetattr (STDIN_FILENO, TCSAFLUSH, &tattr); }

int main (void) { char c;

set_input_mode ();

while (1) { read (STDIN_FILENO, &c, 1); if (c == ’\004’) /* C-d */ break; else putchar (c); }

return EXIT_SUCCESS; }


This document was generated on January 16, 2023 using texi2html 5.0.